1. Field of the Invention
The present invention relates to the field of computer input/output, and more particularly to a system and method for automatically generating URLs (Uniform Resource Locators) for configuring and accessing data sources and data targets. The data sources/targets may be of any type, including I/O devices, files, http servers, ftp servers, etc.
2. Description of the Related Art
In modern networked computer systems, the computer system may be required to obtain data from various sources or write data to various targets, including local memory on the computer system, external data sources connected to the computer system, such as I/O devices connected to computer system ports, and other networked computer systems, such as computer systems connected to a LAN, WAN or to the Internet. When a program executing on a computer system is required to access data, the program is often required to account for the source or location of the data, opening and closing of files, the format of the data, and conversion of the data to readable formats, among other tasks.
One of the biggest challenges in developing complex applications that are comprised of different components is sharing and exchanging information and data between the different components. Today, this task is solved using a number of different existing tools, including writing and reading files, DDE, ActiveX automation, http server and client tools, and more. In addition, measurement applications, as well as other engineering applications, often place some special requirements on sharing data, such as providing additional information qualifying the data.
Hence, an improved system and method is desired for providing programs with access to various data sources and targets having various types or formats, wherein the access is provided invisibly to the user or programmer. U.S. patent application Ser. No. 09/185,161 titled “Data Socket System and Method for Accessing Data Sources Using URLs” describes a component called a Data Socket and URLs called Data Socket URLs which work together for improved data access. In the above-referenced application, the Data Socket client addresses data sources and targets using a URL (Uniform Resource Locator), much the way that a URL is used to address web pages anywhere in the world. The application also describes new Data Socket URLs which allow the user to access I/O device data sources and targets. When reading from an input source, the Data Socket performs all work necessary to read the raw data from various input sources and to parse the data and return it in a form directly usable by the user's applications. When writing to an output target the Data Socket performs all work necessary to format the data provided by the user in the appropriate raw format for the specific target.
The Data Socket system and method described in the above-referenced application is general enough to access data from any type of data source or target, including I/O devices, files, http servers, ftp servers, etc. The URL contains all the information needed for the Data Socket system to access the data source/target. The URL contains all the information necessary to identify the type of data source/target, determine the address of the data source/target, and establish a connection with the data source/target. The URL may also contain configuration information that the Data Socket system uses to configure the data source/target. The user need only supply the appropriate URL to the Data Socket system.
However, given the unlimited range of data source or target types that may be accessed using this method, the task of generating the correct URL to access a specific data source/target in a specific way may be complicated. The capabilities and uses of different data source/target types vary greatly. For example, a DAQ device typically includes input and output analog/digital channels, counter/timers, and other DAQ-related parameters. On the other hand, another type of device may have an entirely different set of data source/target types and configuration parameters. Rather than force the user to learn the correct syntax for the data source/target of interest and manually generate a URL for the data source/target, it is desirable to have a system and method to automatically identify data sources/targets connected to a computer system and generate URLs for configuring and accessing them. For example, it may be desirable to have a system and method to automatically identify the hardware devices connected to a computer system and generate URLs for configuring and connecting to the data sources associated with the devices. As another example, it may be desirable to have a system and method to automatically identify files of a particular type and generate URLs which contain information for accessing and correctly reading from or writing to the files. The present invention is directed toward solving these problems.